//
//  ViewController.m
//  MVVM
//
//  Created by 宜必鑫科技 on 2017/10/18.
//  Copyright © 2017年 宜必鑫科技. All rights reserved.
//
#pragma mark - 第一个问题设置log级别 在pch里面就直接设置
#pragma mark - 第二个问题 为什么会打印两次  感觉没什么用  要看错误信息直接使用腾讯Bugly就好了
/*
 10.19 我安装了管理Xcode的插件 Alcatraz 还有Log颜色的插件XcodeColors 没有变化
 解决办法：http://www.jianshu.com/p/cda6f9f03b99 就好用了
 接下来 要学习使用 CocoaLumberjack 中的 DDLog 感觉有用点的也就是可以 设置log级别了
 */

/*
 学习下不同的第三方代码
 #import "NSObject+Common.h"       //个人添加的在界面上弹出提示的类拓展
 #import <FBShimmeringView.h>        //漂亮的闪光效果
 #import <FBShimmeringLayer.h>       //漂亮的闪光效果
 #import <AsyncDisplayKit/AsyncDisplayKit.h> //能够提高UI的流畅性并缩短响应时间, 线程安全，能够把UI的耗时操作放到非主线程执行
 #import <FlatUIKit.h>           //扁平化风格
 #import <RESideMenu.h>          //QQ的左侧菜单风格
 #import <SWTableViewCell.h>     //Cell滑动，出现多个功能按钮
 #import <MWPhotoBrowser.h>      //图片浏览器
 */


/*
   学习主要的MVVM
 */

#import "ViewController.h"
#import "LDPlayMusicCell.h"
#import "LDMusicViewModel.h"

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>
@property (nonatomic, strong) LDMusicViewModel *viewModel;
@property (nonatomic, strong) UITableView *tableView;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = RGBColor(100, 100, 100);
    
    /* 这样也不错  设置打印级别 把不需要的注释掉就可以了 */
    WJLogInfo(@"KKLogInfo");
    WJLogWarn(@"KKLogWarn");
    WJLogError(@"KKLogError");
    
    _viewModel = [[LDMusicViewModel alloc]init];
    
    [self CreateTableView];
    [self.tableView.mj_header beginRefreshing];
}

- (void)CreateTableView
{
    self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, ScreenWidth, ScreenHeight - 64) style:UITableViewStylePlain];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.showsVerticalScrollIndicator = NO;
    self.tableView.estimatedRowHeight = 0;
    self.tableView.estimatedSectionHeaderHeight = 0;
    self.tableView.estimatedSectionFooterHeight = 0;
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    [self.tableView registerClass:[LDPlayMusicCell class] forCellReuseIdentifier:@"LDPlayMusicCellId"];
    [self.view addSubview:self.tableView];
    
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [self.viewModel refreshDataCompletionHandle:^(NSError *error) {
            if (error) {
                WJLogError(@"%@",error);
            }else{
                [_tableView reloadData];
            }
            [_tableView.mj_header endRefreshing];
        }];
    }];
    
    self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
        [self.viewModel getMoreDataCompletionHandle:^(NSError *error) {
            if (error) {
                WJLogError(@"%@",error);
            }else{
                [_tableView reloadData];
            }
        }];
        [self.tableView.mj_footer endRefreshing];
    }];
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.viewModel.dataArr.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    LDPlayMusicCell *cell = [tableView dequeueReusableCellWithIdentifier:@"LDPlayMusicCellId"];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.model = self.viewModel.dataArr[indexPath.row];
    cell.NeedReloadData = ^{
        [self.tableView reloadData];
    };
    return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return  110 * kScale;
}

- (BOOL)shouldAutorotate {
    return NO;
}





@end
